package com.powergame.model;

import java.util.ArrayList;
import java.util.List;

/**
 * Plateau.java
 *
 * Modélie le plateau de jeu avec toutes les cases (Secteurs)
 *
 * @author ToF
 */
public class Plateau {
    
    /** le controlleur */
    private Jeu jeu = null;
    
    /** Les cases du jeu */
    private List<Secteur> secteurs = null;
    
    public Plateau(Jeu jeu){
        this.jeu = jeu;
    }

    public Jeu getJeu() {
        return jeu; 
    }

    public void setJeu(Jeu jeu) {
        this.jeu = jeu;
    }

    public List<Secteur> getSecteurs() {
        if(secteurs == null){
            secteurs = new ArrayList<Secteur>();
        }
        return secteurs;
    }

    public void setSecteurs(List<Secteur> secteurs) {
        this.secteurs = secteurs;
    }

    public void ajouteSecteur(Secteur s) {
        if(!getSecteurs().contains(s)){
            getSecteurs().add(s);
        }
    }
    
    /**
     * Recherche parmi les secteurs du plateau ce lui qui contient le point x,y
     */
    public Secteur findSecteurAt(int x, int y){
        
        for(Secteur s : getSecteurs()){
            if(s.getPolygone() != null && s.getPolygone().contains(x, y)){
                return s;
            }
        }
        
        return null;
    }

    public Secteur getSecteur(String id) {
        for(Secteur s : getSecteurs()){
            if(s.getId().equalsIgnoreCase(id)){
                return s;
            }
        }
        return null;
    }

    public Secteur findSecteur(Equipe equipe, TypeSecteur typeSecteur) {
        
        for(Secteur s : getSecteurs()){
            if(s.getEquipe().equals(equipe)
            && s.getType().equals(typeSecteur)){
                return s;
            }
        }
        return null;
    }
}
